import {decrypt,encrypt} from "./cbcbase";
import axios from "@/jsSdk/gangdiedao-uni-axios";
const isLocal = true;
let host = "";

// 开发环境 http://bzchdb.tx2.isart.me/
if (process.env.NODE_ENV === "development") {
	// 开发环境下使用域名
	if(isLocal){
		host = "https://bzch.tx1.isart.me/";
		// 本地环境
	}else{
		host = "https://bzch.tx1.isart.me/";
		// 测试环境
	}
} else {
	// 生产环境
	host = "https://bzch.tx1.isart.me/";
}


// 创建自定义接口服务实例
const http = axios.create({
	// baseURL: [baseURL],
	timeout: 60000, // 不可超过 manifest.json 中配置 networkTimeout的超时时间
	// #ifdef H5
	withCredentials: true,
	// #endif
	headers: {
		"Content-Type": "application/json"
		// 'X-Requested-With': 'XMLHttpRequest',
	},
});

// 加密策略模式 具体使用方法看下面
const MethodFunc = {
	get:(request)=>{
		const timestamp = parseInt(String(new Date().getTime() / 1000),10);
		request.params.timestamp = timestamp + "";
		const data = encodeURIComponent(encrypt(request.params));
		request.params = {};
		request.params.data = data;
	},
	post:(request)=>{
		const timestamp = parseInt(String(new Date().getTime() / 1000),10);
		request.data.timestamp = timestamp + "";
		request.data = {data: encrypt(request.data)};
	}
};


// 拦截器 在请求之前拦截
http.interceptors.request.use((request) => {
	request.url = host + request.url;
	console.log("req",request);
	// 集中添加token
	const token =  uni.getStorageSync("token");
	if (token) request.headers.Authorization = "Bear " + token;
	// 加密实例 不需要加密的项目请删除或注释代码
	// if(process.env.NODE_ENV === "production"){
	// 	MethodFunc[request.method](request);
	// }
	return request;
});

// 拦截器 在请求之后拦截
http.interceptors.response.use((response) => {
	// 解密示例 不需要加密的项目请删除或注释代码
	// if(process.env.NODE_ENV === "production"){
	// 	response.data.ret = decrypt(response.data.ret);
	// 	try {
	// 		response.data.ret = JSON.parse(response.data.ret);
	// 	} catch (err) {
	// 		console.log("数据格式化失败，请查看原因",err);
	// 	}
	// }
	return response; // 请求成功之后将返回值返回
}, error => {
	console.log(error);
	if (error) {
		return error;
	}

});

export default http;
